Parte 4 (1 horas)
Consigna#
Completar las implementaciones de EnglishCommander.java, Numbersoup.java y Lol.java de forma que pasen los tests correspondientes, que utilizan ManualLexer.java. Si surge la necesidad de agregar más test, se pueden crear nuevos archivos con test adicionales.
Explicación detallada#
En la carpeta parte4 del código se encuentran los siguientes archivos:
main/java/ar/uba/fi/compiladores/parte4├── EnglishCommander│ ├── Automata.java│ ├── State.java│ └── TokenTypes.java├── Lol│ ├── Automata.java│ ├── State.java│ └── TokenTypes.java└── Numbersoup ├── Automata.java ├── State.java └── TokenTypes.javaMientras que en la carpeta de tests se encuentran los siguientes:
test/java/ar/uba/fi/compiladores/parte4├── EnglishCommanderTest.java├── LolTest.java└── NumbersoupTest.javaPara cada lenguage, deben completarse el Automata.java y el enumerado de estados del autómata, es decir, State.java, y deben permanecer idénticos el test correspondiente y el archivo de nombre TokenTypes.java.
Consejos#
- Lo que hay que hacer en esta parte concretamente es "transcribir" a código los autómatas que se graficaron en la parte 2 a una función de transición y un listado de estados.
- Puede resultar de gran ayuda analizar la implementación de
BrainfuckAdderpara entender mejor cómo se maneja el estado muerto, los estados de error, etc.